package controllers

import (
	"fmt"
	"sync"

	"github.com/gin-gonic/gin"
)

// Queue 是一个简单的字符串队列
type Queue struct {
	items []string
	mu    sync.Mutex
}

// Enqueue 将数据放入队列
func (q *Queue) Enqueue(data string) {
	q.mu.Lock()
	defer q.mu.Unlock()
	q.items = append(q.items, data)
}

// Dequeue 从队列中取出数据
func (q *Queue) Dequeue() string {
	q.mu.Lock()
	defer q.mu.Unlock()
	if len(q.items) == 0 {
		return ""
	}
	data := q.items[0]
	q.items = q.items[1:]
	return data
}

// 处理数据的函数
func processDatas(data string) string {
	// 在这里编写处理逻辑，这里只是一个示例
	return "Processed: " + data
}

// ProcessData 处理数据的处理器
func ProcessData(c *gin.Context) {
	// 创建队列
	queue := &Queue{}

	for {
		// 从队列中取出数据
		data := queue.Dequeue()
		if data != "" {
			// 处理数据
			processedData := processDatas(data)
			fmt.Println(processedData)
		}
	}

	// c.JSONP(200, gin.H{"code": 0, "msg": tool.GetMsg(0, "查询成功")})
}
